Verifying Recursive Programs Using Intraprocedural Analyzers
نویسندگان
چکیده
Recursion can complicate program analysis significantly. Some program analyzers simply ignore recursion or even refuse to check recursive programs. In this paper, we propose an algorithm that uses a recursion-free program analyzer as a black box to check recursive programs. With extended program constructs for assumptions, assertions, and nondeterministic values, our algorithm computes function summaries from inductive invariants computed by the underlying program analyzer. Such function summaries enable our algorithm to check recursive programs. We implement a prototype using the recursion-free program analyzer CPAChecker and compare it with other program analyzers on the benchmarks in the 2014 Competition on Software Verification.
منابع مشابه
A Prototype Environment for Verification of Recursive Functional Programs
We present an experimental prototype environment for defining and verifying recursive functional programs, which is part of the Theorema system. A distinctive feature of our approach is the hint on ”what is wrong” in case of a verification failure. The prototype is designed in order to improve the education of future software engineers by exposing them to successful examples of using formal met...
متن کاملA Strict Border for the Decidability ofE {
During the execution of functional logic programs, E{unii-cation problems have to be solved quite frequently, where the underlying equational theory is induced by recursive functions. But, what about the decidability of those E{uniication problems? Up to now, there does not exist a concrete answer to this question. In this paper, we answer this question by drawing and verifying a strict border ...
متن کاملA Strict Border for the Decidability of E{Uni cation for Recursive Functions
During the execution of functional logic programs, E{uniication problems have to be solved quite frequently, where the underlying equational theory is induced by recursive functions. But, what about the decidability of those E{uniication problems? Up to now, there does not exist a concrete answer to this question. In this paper, we answer this question by drawing and verifying a strict border b...
متن کاملDeadlock Detection in Linear Recursive Programs
Deadlock detection in recursive programs that admit dy-namic resource creation is extremely complex and solutions either giveimprecise answers or do not scale.We define an algorithm for detecting deadlocks of linear recursive pro-grams of a basic model. The theory that underpins the algorithm is ageneralization of the theory of permutations of names to so-called muta-tio...
متن کاملProgrmaYerification in a l~gical Theory of Constructions
The logical theory of constructions is a simple theory which combines functional programs and intuitionistic predicate calculus. Here we propose that it is a practical alternative to other constructive programming logics, such as Martin-LSf's type theory. Its main advantage is that it admits reasoning directly about general recursion, while maintaining that all typed programs terminate. We illu...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2014